Dart 的变量与类型
想要更好的学习flutter,我们首先要学习Dart语言。 在 Dart 中,变量和类型是编程的基础。以下是关于 Dart 变量与类型的详细讲解:
变量的声明和初始化
在 Dart 中,变量可以使用 var
、final
或 const
关键字来声明。
var
关键字:用于声明一个变量,类型由编译器根据变量的初始值来推断。例如:var name = 'kunkun';
var age = 30;final
关键字:用于声明一个只能赋值一次的变量(运行时常量)。final
变量在运行时初始化后不能再修改。例如:final name = 'kunkun';
final int age = 30;const
关键字:用于声明一个编译时常量。const
变量在编译时即已确定,不可改变。例如:const pi = 3.14;
const int maxAge = 100;
数据类型
Dart 是一种强类型语言,每个变量都有一个类型。以下是 Dart 的一些基本数据类型:
数字类型 (Numbers):
int
:表示整数。例如:int age = 30;
double
:表示双精度浮 点数。例如:double height = 5.9;
字符串类型 (Strings):
String
:用于表示文本数据。例如:String name = 'Alice';
布尔类型 (Booleans):
bool
:用于表示布尔值,true 或 false。例如:bool isActive = true;
列表类型 (Lists):
List
:表示一个有序的对象集合。例如:List<int> numbers = [1, 2, 3];
集合类型 (Sets):
Set
:表示一个无序且不重复的对象集合。例如:Set<String> names = {'Alice', 'Bob'};
映射类型 (Maps):
Map
:表示一个键值对集合。例如:Map<String, int> ages = {'Alice': 30, 'Bob': 25};
类型检查与类型转换
Dart 提供了类型检查和类型转换的功能。
类型检查:
使用 is 运算符可以检查一个对象是否为某种类型。例如:
var name = 'kunkun';
if (name is String) {
print('Name is a String');
}
类型转换:
使用 as 运算符可以将一个对象转换为某种类型。例如:
var value = 42;
var stringValue = value as String; // 这行代码会导致运行时错误,因为 int 不能转换为 String
类型推断
Dart 支持类型推断,即编译器可以根据上下文自动推断变量的类型。例如:
var name = 'kunkun'; // Dart 自动推断 name 的类型为 String
var age = 30; // Dart 自动推断 age 的类型为 int
示例代码
以下是一个包含变量声明、初始化和类型使用的示例:
void main() {
var name = 'kunkun'; // 类型为 String
final int age = 30; // 类 型为 int
const double height = 5.9; // 类型为 double
bool isActive = true; // 类型为 bool
List<String> hobbies = ['Reading', 'Swimming']; // 类型为 List<String>
Set<String> skills = {'Dart', 'Flutter'}; // 类型为 Set<String>
Map<String, int> scores = {'Math': 95, 'Science': 90}; // 类型为 Map<String, int>
// 类型检查
if (name is String) {
print('Name is a String');
}
// 打印变量
print('Name: $name, Age: $age, Height: $height');
print('Active: $isActive');
print('Hobbies: $hobbies');
print('Skills: $skills');
print('Scores: $scores');
}